package models

import (
	"gorm.io/gorm"
)

// SecretLocation 秘密据点模型
type SecretLocation struct {
	gorm.Model
	Name        string  `json:"name" gorm:"size:100;not null"`
	Description string  `json:"description" gorm:"type:text"`
	Latitude    float64 `json:"latitude" gorm:"type:decimal(10,8)"`      // 纬度
	Longitude   float64 `json:"longitude" gorm:"type:decimal(11,8)"`     // 经度
	Address     string  `json:"address" gorm:"size:255"`                 // 精确地址(仅圈主可见)
	VagueRange  string  `json:"vague_range" gorm:"size:50"`              // 模糊距离范围
	Category    string  `json:"category" gorm:"size:50"`                 // 地点类别
	CreatedBy   uint    `json:"created_by"`                              // 创建者ID
	Status      string  `json:"status" gorm:"size:20;default:'pending'"` // pending, approved, rejected
	ProofImage  string  `json:"proof_image" gorm:"size:255"`             // 凭证图片URL
}

// CreateSecretLocation 创建新秘密据点
func CreateSecretLocation(location *SecretLocation) error {
	return GetDB().Create(location).Error
}

// GetApprovedLocations 获取已审核的地点
func GetApprovedLocations() ([]SecretLocation, error) {
	var locations []SecretLocation
	result := GetDB().Where("status = ?", "approved").Find(&locations)
	return locations, result.Error
}
